AWS入門ブログリレー2024 〜Amazon Route 53編〜
当エントリは弊社AWS事業本部による『AWS 入門ブログリレー 2024』の22日目のエントリです。
このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。
AWS をこれから学ぼう!という方にとっては文字通りの入門記事として、またすでに AWS を活用されている方にとっても AWS サービスの再発見や 2024 年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。
では、さっそくいってみましょう。今回のテーマはAmazon Route 53です。
はじめに
今回の記事では、Amazon Route 53(以下、Route 53)の機能について紹介していきます。AWSのDNSサービスとして知られているRoute 53ですが、意外と多くに機能が提供されています。そういった機能も含めて紹介できればと思います。
なお、Route 53を理解するためにはDNSの知識が必要です。こちらは書籍などで学習可能ですので、筆者が参考にした書籍を参考として共有しておきます。
今回はDNSの詳しい名称などは突っ込みませんのでご留意ください。
Amazon Route 53とは?
Amazon Route 53はAWSが提供するDNSサービスです。Route 53を使うことで、ドメイン名の登録や管理、DNSレコードの設定、DNSルーティングポリシーの設定などが可能になります。
またヘルスチェックやDNSフェイルオーバー、トラフィックフローなどの機能も備わっているため、これらの機能を活用することで、Webサイトやアプリケーションのデプロイなどに活用することができます。
Route 53の重要性
AWSサービスには、リソースが作成される際にURLが発行されるものがあります。このURLはRoute 53により管理されています。そのため、多くのAWSサービスはRoute 53に大きく依存していることになります。
実際、Route 53のBlackbeltにも同様の言及があります。あらゆるAWSサービスがRoute 53に依存しているため、Route 53自体のService Level Agreement(SLA)は100%に設定されています。
ドメイン登録
Route 53の主な機能の1つがドメイン登録機能です。お名前.comのようなドメインのリセラーとして、Route 53上でドメインを発行することができます。また他のレジストラに登録してあるドメインを移管したり、そのサブドメインをパブリックホストゾーン(後述)として作成・管理することもできます。
Route 53でのドメイン登録
Route 53でのドメインの登録は、こちらの「ドメインを登録」のコンソール画面から行うことができます。このように登録したいドメインを選んで、料金を支払うことでドメインを取得することができます。
Route 53でのドメイン移管
Route 53でのドメインの移管については、こちらの「ドメインをアカウントに移管する」のコンソール画面から行うことができます。他のレジストラなどに登録してあるドメインをこちらに入力して、ここからドメインをRoute 53に移管することができます。
ホストゾーンの作成
Route 53では、ドメインをホストゾーンという単位で管理できます。ホストゾーンでは、ネームサーバー機能とDNSルーティング機能を設定することができます。
パブリックホストゾーン
ホストゾーンには、パブリックホストゾーンとプライベートホストゾーンの2種類があります。このうち、パブリックホストゾーンではインターネット経由での名前解決を設定可能です。
パブリックホストゾーンは、このような画面から作成可能です。ドメイン名を指定して「ホストゾーンの作成」を押下します。
そうすると、こちらのようにパブリックホストゾーンが作成されます。Route 53によって提供された4つのネームサーバーを転送先とするNSレコードと、SOAレコードがそれぞれ作成されます。
例えばサブドメインsub.example.com
のゾーンをパブリックホストゾーンに作成して、example.com
から委任してもらう場合を考えます。この場合、example.com
のNSレコードを作成して、sub.example.com
の転送先にこれら4つのネームサーバーを登録したりします。
プライベートホストゾーン
パブリックホストゾーンと同様の手順で、プライベートホストゾーンも作成できます。プライベートホストゾーンを作成すると、VPC内での名前解決を設定可能です。
作成画面はパブリックホストゾーンとほぼ同じですが、プライベートホストゾーンでは適用するVPCの選択画面があります。こちらで、EC2などのリソースに対してVPC内での名前解決を設定可能になります。
ヘルスチェック
Route 53には、ヘルスチェックの機能があります。Route 53がモニタリングするエンドポイント(ウェブサーバーのIPアドレスやドメイン名など)を指定して、一定の間隔でそのエンドポイントに対してリクエストを送信します。エンドポイントから正常な応答が返ってくれば、そのリソースは健全と判断されますが、一定回数以上応答がない場合は異常と見なされます。
DNSルーティングポリシー
DNSのホストゾーン内で設定できる項目の1つに、DNSのルーティングポリシーがあります。ひとつのドメインに対して複数のターゲットを登録しておいて、各ポリシーに従ってルーティングの動作を設定することができます。
シンプルルーティング
1つのドメインに関連づけたいリソースが1つだけ存在する場合に使用します。例えば、ウェブサイトにコンテンツを提供する1台のウェブサーバーとexample.com
を関連づけるケースが挙げられます。
こちらの図を例に考えます。例えば、Route 53のホストゾーンにexample.com
と、ALBのアドレスである192.168.0.1
が紐づけられている場合、Route 53はexample.com
へのリクエストをALBにそのまま転送します。
フェイルオーバールーティング
こちらは、リソースが正常な場合にリソースにトラフィックをルーティングできます。またデフォルトでルーティングしたいリソースが正常でなかった場合、別のリソースにルーティング(フェイルオーバー)できます。
具体的な実装としては、プライマリに登録したリソースのヘルスチェックが失敗するとセカンダリにルーティングを切り替えます。ちょうどこちらの図のような動作になります。
位置情報ルーティング
ユーザーの地理的場所(DNS クエリの送信元の場所)に基づいて、トラフィックを処理するリソースを選択できます。
例えばリソースを東京と北米に配置している状態で、ALBにアクセスしてきた日本にいるユーザーがいた場合、東京リージョンにデプロイされたALBにルーティングされます。
地理的近接ルーティング
こちらは位置情報ルーティングとは少し違い、ユーザーの物理的な位置に基づいて、トラフィックを処理するリソースを選択できます。
例えば同じ日本国内にいた場合でも、ALBにアクセスするユーザーが大阪にいた場合、物理的に近い大阪リージョンにデプロイされたALBにルーティングされます。
レイテンシーベースルーティング
複数のAWSリージョンにリソースがある場合に、レイテンシーの最も小さいリージョンにトラフィックをルーティングします。
例えば、192.168.0.1
にあるALBよりも192.168.0.2
のALBの方が応答時間が短い場合、後者の方がレイテンシーが小さいと見なされてそちらにルーティングされます。
IPベースルーティング
こちらは、トラフィックの送信元のIPアドレスに基づいてトラフィックをルーティングします。
例えば、特定のCIRDブロックとルーティング先としてのリソースを登録していた場合、そのCIRDブロック範囲内のIPをもつ接続元に関しては特定のリソースにルーティングされます。CIRRブロックの範囲外のIPを持つ接続元は、デフォルトのリソースでルーティングされます。
複数値回答ルーティング
複数値回答ルーティングでは、1つのドメインに対して複数のIPアドレスを設定し、その中からヘルスチェックで有効なレスポンスを返すIPアドレスにルーティングさせることができます。
例えば3つの異なるALBがあって、このうち1つのALBのヘルスチェックが異常になった場合、そちらへのルーティングは止めて正常な残り2つのALBにルーティングさせます。
加重ルーティングポリシー
こちらは、指定した比率で複数のリソースにトラフィックをルーティングします。
192.168.0.1
と192.168.0.
2のALBにそれぞれ重量を80、20と設定していた場合、総リクエストの80%を80の方へ、20%を20の方にルーティングします。
Route 53 Resolver
Route 53 Resolverは、AWS内のVPCに標準で備わっているDNSサービスになります。役割としてはフォワーダとフルサービスリゾルバーを合わせたものです。
例えば、VPC内のEC2インスタンス1が、同じVPC内のEC2インスタンス2にエンドポイント経由で接続する場合は、Route 53 Resolver内のフォワーダからそのまま対象のリソースにアクセスします。
一方で、VPC内のEC2インスタンス1がインターネット上のリソースへアクセスする場合は、フォワーダを経由してフルサービスリゾルバーにアクセスし、そこから権威DNSサーバーに反復問い合わせを行います。
Amazon Route 53 Resolver for Hybrid Clouds
Route 53 Resolver for Hybrid Cloudsでは、VPC内のDNSクエリをオンプレミスのネットワークからやりとりできる機能になります。既存のVPCに対して、Route 53コンソール上でインバウンドエンドポイントやアウトバウンドエンドポイントを作成し、それらに関して理ゾルバールールを設定することで設定できます。
インバウンドエンドポイントは、Route 53のコンソール上から作成できます。VPC、セキュリティグループ、サブネットなどを指定して作成してみると、こちらのようにそれぞれのエンドポイントにIPアドレスが割り当てられた状態で作成されます。
またアウトバウンドルールに関しても、同様に作成できます。
こうして作成したインバウンドエンドポイントをオンプレ側のルールに設定したり、アウトバウンドアウトバウンドエンドポイントをリゾルバールールに設定することで、VPCとオンプレ間で通信が可能となります。
終わりに
以上、『AWS 入門ブログリレー 2024』の22日目のエントリ Route 53編でした。参考資料はこちらになります。
次回、4/16は弊社木村優太による「Amazon VPC Lattice編」の予定です!